home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 23 / CU Amiga - Super CD-ROM 23 (June 1998).iso / CreatingGames / Utilities / Asm / AB3DIIsrc / source_4000 / newloadfromdisk.s < prev    next >
Encoding:
Text File  |  1996-07-06  |  13.4 KB  |  969 lines

  1. ******************************************************
  2.  
  3. ENDOFQUEUE: dc.l 0
  4.  
  5. INITQUEUE:
  6.  
  7.  move.l #WorkSpace,ENDOFQUEUE
  8.  
  9.  rts
  10.  
  11. QUEUEFILE:
  12. ; On entry:
  13. ; a0=Pointer to filename
  14. ; d0=Ptr to dest. of addr
  15. ; d1=ptr to dest. of len.
  16. ; typeofmem=type of memory
  17.  
  18.  movem.l d0-d7/a0-a6,-(a7)
  19.  
  20.  move.l ENDOFQUEUE,a1
  21.  
  22.  move.l d0,(a1)+
  23.  move.l d1,(a1)+
  24.  move.l TYPEOFMEM,(a1)+
  25.  move.w #79,d0
  26. .copyname:
  27.  move.b (a0)+,(a1)+
  28.  dbra d0,.copyname
  29.  
  30.  add.l #100,ENDOFQUEUE
  31.  
  32.  movem.l (a7)+,d0-d7/a0-a6
  33.  
  34.  rts
  35.  
  36. FLUSHQUEUE:
  37.  
  38.  bsr FLUSHPASS
  39.  
  40. tryagain
  41.  tst.b d6
  42.  beq .loadedall
  43.  
  44. * Find first unloaded file and prompt for disk.
  45.  move.l #WorkSpace,a2
  46. .findfind:
  47.  tst.l (a2)
  48.  bne.s .foundunloaded
  49.  add.l #100,a2
  50.  bra.s .findfind
  51. .foundunloaded:
  52.  
  53. * A2 points at an unloaded file thingy.
  54. * Prompt for the disk.
  55.  
  56.  move.l #mnu_diskline,a3
  57.  move.l #$20202020,(a3)+
  58.  move.l #$20202020,(a3)+
  59.  move.l #$20202020,(a3)+
  60.  move.l #$20202020,(a3)+
  61.  move.l #$20202020,(a3)+
  62.  
  63. ; move.l #VOLLINE,a3
  64.  move.l #mnu_diskline+10,a3
  65.  
  66.  moveq #-1,d0
  67.  move.l a2,a4
  68.  add.l #12,a4
  69. .notfoundyet:
  70.  addq #1,d0
  71.  cmp.b #':',(a4)+
  72.  bne.s .notfoundyet
  73.  
  74.  move.w d0,d1
  75.  asr.w #1,d1
  76.  sub.w d1,a3
  77.  
  78.  move.l a2,a4
  79.  add.l #12,a4
  80.  
  81. ; move.w #79,d0
  82. .putinvol:
  83.  move.b (a4)+,(a3)+
  84.  dbra d0,.putinvol
  85.  
  86.  movem.l d0-d7/a0-a6,-(a7)
  87.  
  88. ; move.w #23,FADEAMOUNT
  89. ; jsr FADEDOWNTITLE 
  90.  
  91. ; move.w #3,OptScrn
  92. ; move.w #0,OPTNUM
  93. ; jsr DRAWOPTSCRN
  94.  
  95.  jsr mnu_GETBLITINT
  96.  
  97.  jsr mnu_setscreen
  98.  
  99.  lea mnu_askfordisk,a0
  100.  jsr mnu_domenu
  101.  
  102.  jsr mnu_clearscreen
  103.  
  104.  jsr mnu_DROPBLITINT
  105.  
  106. ;.wtrel:
  107. ; btst #7,$bfe001
  108. ; beq.s .wtrel
  109. ;
  110. ;.wtclick:
  111. ; btst #6,$bfe001
  112. ; bne.s .wtclick
  113.  
  114. ; jsr CLROPTSCRN
  115.  
  116. ; move.w #23,FADEAMOUNT
  117. ; jsr FADEUPTITLE 
  118.  
  119.  movem.l (a7)+,d0-d7/a0-a6
  120.  
  121.  bsr FLUSHPASS
  122.  
  123.  bra tryagain
  124.  
  125. .loadedall
  126.  rts
  127.  
  128. FLUSHPASS:
  129.  move.l #WorkSpace,a2
  130.  moveq #0,d7    ; loaded a file
  131.  moveq #0,d6    ; tried+failed
  132.  
  133. .flushit
  134.  move.l a2,d0
  135.  cmp.l ENDOFQUEUE,d0
  136.  bge.s FLUSHED
  137.  
  138.  tst.l (a2)
  139.  beq.s .donethisone
  140.  
  141.  lea 12(a2),a0    ; ptr to name
  142.  
  143.  move.l 8(a2),TYPEOFMEM
  144.  
  145.  jsr TRYTOOPEN
  146.  tst.l d0
  147.  beq.s .failtoload
  148.  
  149.  move.l d0,handle
  150.  jsr DEFLOADFILE 
  151.  st d7
  152.  
  153.  move.l (a2),a3
  154.  move.l d0,(a3)
  155.  
  156.  move.l 4(a2),d0
  157.  beq.s .nolenstore
  158.  
  159.  move.l d0,a3
  160.  move.l d1,(a3)
  161.  
  162. .nolenstore:
  163.  move.l #0,(a2)
  164.  bra.s .donethisone
  165.  
  166. .failtoload
  167.  st d6
  168.  
  169. .donethisone:
  170.  add.l #100,a2
  171.  bra .flushit
  172.  
  173. FLUSHED:
  174.  rts
  175.  
  176.  
  177. TRYTOOPEN:
  178.  movem.l d1-d7/a0-a6,-(a7)
  179.  move.l a0,d1
  180.  move.l doslib,a6
  181.  move.l #1005,d2
  182.  jsr -30(a6)
  183.  movem.l (a7)+,d1-d7/a0-a6
  184.  rts
  185.  
  186. ***************************************************
  187.  
  188. SFX_NAMES:
  189.  dc.l ScreamName,4400
  190.  dc.l ShootName,7200
  191.  dc.l 0,0
  192. ; dc.l MunchName,5400
  193.  dc.l PooGunName,4600
  194.  dc.l CollectName,3400
  195. ;5
  196.  dc.l DoorNoiseName,8400
  197.  dc.l BassName,8000
  198.  dc.l StompName,4000
  199.  dc.l LowScreamName,8600
  200.  dc.l BaddieGunName,6200
  201. ;10
  202. ; dc.l 0,0
  203.  dc.l SwitchNoiseName,1200
  204.  dc.l ReloadName,4000
  205.  dc.l NoAmmoName,2200
  206.  dc.l SplotchName,3000
  207.  dc.l SplatPopName,5600
  208. ;15 
  209.  dc.l BoomName,11600
  210.  dc.l HissName,7200
  211.  dc.l Howl1Name,7400
  212.  dc.l Howl2Name,9200
  213.  dc.l PantName,5000
  214. ;20
  215.  dc.l WhooshName,4000
  216.  dc.l ShotGunName,8800
  217. ; dc.l 0,0
  218.  dc.l FlameName,9000
  219.  dc.l MuffledName,1800
  220.  dc.l ClopName,3400
  221. ;25 
  222.  dc.l ClankName,1600
  223.  dc.l TeleportName,11000
  224.  dc.l HALFWORMPAINNAME,8400
  225.  dc.l -1
  226.  
  227. ScreamName:    dc.b 'AB3D2:sounds/scream',0
  228.  even
  229. ShootName:    dc.b 'AB3D2:sounds/fire!',0
  230.  even
  231. *
  232. *
  233. PooGunName:    dc.b 'AB3D2:sounds/shoot.dm',0
  234.  even
  235. CollectName:    dc.b 'AB3D2:sounds/collect',0
  236.  even
  237. DoorNoiseName:    dc.b 'AB3D2:sounds/newdoor',0
  238.  even
  239. BassName:    dc.b 'AB3D2:sounds/splash',0
  240.  even
  241. StompName:    dc.b 'AB3D2:sounds/footstep3',0
  242.  even
  243. LowScreamName:    dc.b 'AB3D2:sounds/lowscream',0
  244.  even
  245. BaddieGunName:    dc.b 'AB3D2:sounds/baddiegun',0
  246.  even
  247. SwitchNoiseName:dc.b 'AB3D2:sounds/switch',0
  248.  even
  249. ReloadName:    dc.b 'AB3D2:sounds/switch1.sfx',0
  250.  even
  251. NoAmmoName:    dc.b 'AB3D2:sounds/noammo',0
  252.  even
  253. SplotchName:    dc.b 'AB3D2:sounds/splotch',0
  254.  even
  255. SplatPopName:    dc.b 'AB3D2:sounds/splatpop',0
  256.  even
  257. BoomName:    dc.b 'AB3D2:sounds/boom',0
  258.  even
  259. HissName:    dc.b 'AB3D2:sounds/newhiss',0
  260.  even
  261. Howl1Name:    dc.b 'AB3D2:sounds/howl1',0
  262.  even
  263. Howl2Name:    dc.b 'AB3D2:sounds/howl2',0
  264.  even
  265. PantName:    dc.b 'AB3D2:sounds/pant',0
  266.  even
  267. WhooshName:    dc.b 'AB3D2:sounds/whoosh',0
  268.  even
  269. ShotGunName:    dc.b 'AB3D2:sounds/shotgun',0
  270.  even
  271. FlameName:    dc.b 'AB3D2:sounds/flame',0 
  272.  even
  273. MuffledName:    dc.b 'AB3D2:sounds/MuffledFoot',0
  274.  even
  275. ClopName:    dc.b 'AB3D2:sounds/footclop',0
  276.  even
  277. ClankName:    dc.b 'AB3D2:sounds/footclank',0
  278.  even
  279. TeleportName:    dc.b 'AB3D2:sounds/teleport',0
  280.  even
  281. HALFWORMPAINNAME: dc.b 'AB3D2:sounds/HALFWORMPAIN',0
  282.  even
  283.   
  284. MunchName:    dc.b 'AB3D2:sounds/munch',0
  285.  even
  286. RoarName:    dc.b 'AB3D2:sounds/bigscream',0
  287.  even
  288.  
  289. ;-102
  290. ;7c
  291.  
  292. OBJNAME: ds.w 80
  293.  
  294. OBJ_NAMES:
  295.  dc.l wad1n
  296.  dc.l ptr1n
  297.  
  298.  dc.l wad2n
  299.  dc.l ptr2n
  300.  
  301. ; dc.l wad3n
  302. ; dc.l ptr3n
  303.  
  304.  dc.l wad4n
  305.  dc.l ptr4n
  306.  
  307.  dc.l wad5n
  308.  dc.l ptr5n
  309.  
  310.  dc.l wad6n
  311.  dc.l ptr6n
  312.  
  313.  dc.l wad7n
  314.  dc.l ptr7n
  315.  
  316.  dc.l wad8n
  317.  dc.l ptr8n
  318.  
  319.  dc.l wad9n
  320.  dc.l ptr9n
  321.  
  322.  dc.l wadan
  323.  dc.l ptran
  324.  
  325.  dc.l wadbn
  326.  dc.l ptrbn
  327.  
  328.  dc.l wadcn
  329.  dc.l ptrcn
  330.  
  331.  dc.l waddn
  332.  dc.l ptrdn
  333.  
  334.  dc.l waden
  335.  dc.l ptren
  336.  
  337.  dc.l wadfn
  338.  dc.l ptrfn
  339.  
  340.  dc.l wadgn
  341.  dc.l ptrgn
  342.  
  343.  
  344.  dc.l -1,-1
  345.  
  346. wad1n:
  347.  dc.b 'AB3D1:includes/ALIEN2.wad',0
  348.  even
  349. ptr1n:
  350.  dc.b 'AB3D1:includes/ALIEN2.ptr',0
  351.  even
  352. wad2n:
  353.  dc.b 'AB3D1:includes/PICKUPS.wad',0
  354.  even
  355. ptr2n:
  356.  dc.b 'AB3D1:includes/PICKUPS.ptr',0
  357.  even
  358. wad3n:
  359.  dc.b 'AB3D1:includes/uglymonster.wad',0
  360.  even
  361. ptr3n:
  362.  dc.b 'AB3D1:includes/uglymonster.ptr',0
  363.  even
  364. wad4n:
  365.  dc.b 'AB3D1:includes/flyingalien.wad',0
  366.  even
  367. ptr4n:
  368.  dc.b 'AB3D1:includes/flyingalien.ptr',0
  369.  even
  370. wad5n:
  371.  dc.b 'AB3D1:includes/keys.wad',0
  372.  even
  373. ptr5n:
  374.  dc.b 'AB3D1:includes/keys.ptr',0
  375.  even
  376. wad6n:
  377.  dc.b 'AB3D1:includes/rockets.wad',0
  378.  even
  379. ptr6n:
  380.  dc.b 'AB3D1:includes/rockets.ptr',0
  381.  even
  382. wad7n:
  383.  dc.b 'AB3D1:includes/barrel.wad',0
  384.  even
  385. ptr7n:
  386.  dc.b 'AB3D1:includes/barrel.ptr',0
  387.  even
  388. wad8n:
  389.  dc.b 'AB3D1:includes/bigbullet.wad',0
  390.  even
  391. ptr8n:
  392.  dc.b 'AB3D1:includes/bigbullet.ptr',0
  393.  even
  394. wad9n:
  395.  dc.b 'AB3D1:includes/newgunsinhand.wad',0
  396.  even
  397. ptr9n:
  398.  dc.b 'AB3D1:includes/newgunsinhand.ptr',0
  399.  even
  400. wadan:
  401.  dc.b 'AB3D1:includes/newmarine.wad',0
  402.  even
  403. ptran:
  404.  dc.b 'AB3D1:includes/newmarine.ptr',0
  405.  even
  406. wadbn:
  407.  dc.b 'AB3D1:includes/lamps.wad',0
  408.  even
  409. ptrbn:
  410.  dc.b 'AB3D1:includes/lamps.ptr',0
  411.  even
  412. wadcn:
  413.  dc.b 'AB3D1:includes/worm.wad',0
  414.  even
  415. ptrcn:
  416.  dc.b 'AB3D1:includes/worm.ptr',0
  417.  even
  418. waddn:
  419.  dc.b 'AB3D1:includes/explosion.wad',0
  420.  even
  421. ptrdn:
  422.  dc.b 'AB3D1:includes/explosion.ptr',0
  423.  even
  424. waden:
  425.  dc.b 'AB3D1:includes/bigclaws.wad',0
  426.  even
  427. ptren:
  428.  dc.b 'AB3D1:includes/bigclaws.ptr',0
  429.  even
  430. wadfn:
  431.  dc.b 'AB3D1:includes/tree.wad',0
  432.  even
  433. ptrfn:
  434.  dc.b 'AB3D1:includes/tree.ptr',0
  435.  even
  436. wadgn:
  437.  dc.b 'AB3D1:includes/glare.wad',0
  438.  even
  439. ptrgn:
  440.  dc.b 'AB3D1:includes/glare.ptr',0
  441.  even
  442.  
  443. OBJ_ADDRS: ds.l 160
  444.  
  445. blocklen: dc.l 0
  446. blockname: dc.l 0
  447. blockstart: dc.l 0
  448.  
  449. BOTPICNAME: dc.b 'AB3:includes/panelraw',0
  450.  even
  451. PanelLen: dc.l 0
  452.  
  453. FREEBOTMEM:
  454.  move.l Panel,d1
  455.  move.l d1,a1
  456.  move.l PanelLen,d0
  457.  move.l 4.w,a6
  458.  jsr -210(a6)
  459.  
  460.  rts
  461.  
  462. LOADBOTPIC:
  463.  
  464.  PRSDb
  465.  
  466.  move.l #BOTPICNAME,blockname
  467.  
  468.  move.l doslib,a6
  469.  move.l blockname,d1
  470.  move.l #1005,d2
  471.  jsr -30(a6)
  472.  move.l d0,handle
  473.  
  474.  lea fib,a5
  475.  move.l handle,d1
  476.  move.l a5,d2
  477.  jsr -390(a6)
  478.  
  479.  move.l $7c(a5),blocklen
  480.  move.l #30720,PanelLen
  481.  
  482.  move.l #2,d1
  483.  move.l 4.w,a6
  484.  move.l PanelLen,d0
  485.  jsr -198(a6)
  486.  move.l d0,blockstart
  487. ; move.l doslib,a6
  488. ; move.l blockname,d1
  489. ; move.l #1005,d2
  490. ; jsr -30(a6)
  491.  move.l doslib,a6
  492. ; move.l d0,handle
  493.  
  494.  move.l handle,d1
  495.  move.l LEVELDATA,d2
  496.  move.l blocklen,d3
  497.  jsr -42(a6)
  498.  move.l doslib,a6
  499.  move.l handle,d1
  500.  jsr -36(a6)
  501.  
  502.  move.l blockstart,Panel
  503.  
  504.  move.l LEVELDATA,d0
  505.  moveq #0,d1
  506.  move.l Panel,a0
  507.  lea WorkSpace,a1
  508.  lea $0,a2
  509.  jsr unLHA
  510.  
  511.  rts
  512.  
  513. LOADOBS:
  514.  
  515.  PRSDG
  516.  
  517.  move.l #OBJ_ADDRS,a2
  518.  move.l LINKFILE,a0
  519.  lea ObjectGfxNames(a0),a0
  520.  
  521.  move.l #0,TYPEOFMEM
  522.  
  523.  move.l #Objects,a1
  524.  
  525. LOADMOREOBS:
  526.  move.l a0,a4
  527.  move.l #OBJNAME,a3
  528. fillinname:
  529.  move.b (a4)+,d0
  530.  beq.s donename
  531.  move.b d0,(a3)+
  532.  bra.s fillinname
  533.  
  534. donename:
  535.  
  536.  move.l a0,-(a7)
  537.  
  538.  move.l a3,DOTPTR
  539.  move.b #'.',(a3)+
  540.  move.b #'W',(a3)+
  541.  move.b #'A',(a3)+
  542.  move.b #'D',(a3)+
  543.  move.b #0,(a3)+
  544.  
  545.  move.l #OBJNAME,a0
  546.  move.l a1,d0
  547.  moveq #0,d1
  548.  bsr QUEUEFILE
  549.  
  550.  move.l DOTPTR,a3
  551.  move.b #'.',(a3)+
  552.  move.b #'P',(a3)+
  553.  move.b #'T',(a3)+
  554.  move.b #'R',(a3)+
  555.  move.b #0,(a3)+
  556.  
  557.  
  558.  move.l #OBJNAME,a0
  559.  move.l a1,d0
  560.  add.l #4,d0
  561.  moveq #0,d1
  562.  bsr QUEUEFILE
  563.  
  564.  move.l DOTPTR,a3
  565.  move.b #'.',(a3)+
  566.  move.b #'2',(a3)+
  567.  move.b #'5',(a3)+
  568.  move.b #'6',(a3)+
  569.  move.b #'P',(a3)+
  570.  move.b #'A',(a3)+
  571.  move.b #'L',(a3)+
  572.  move.b #0,(a3)+
  573.  
  574.  move.l #OBJNAME,a0
  575.  move.l a1,d0
  576.  add.l #12,d0
  577.  moveq #0,d1
  578.  bsr QUEUEFILE
  579.  
  580.  move.l (a7)+,a0
  581.  
  582.  add.l #64,a0
  583.  add.l #16,a1
  584.  tst.b (a0)
  585.  bne LOADMOREOBS
  586.  
  587.  move.l #POLYOBJECTS,a2
  588.  move.l LINKFILE,a0
  589.  add.l #VectorGfxNames,a0
  590.  
  591. LOADMOREVECTORS
  592.  tst.b (a0)
  593.  beq.s NOMOREVECTORS
  594.  
  595.  move.l a2,d0
  596.  moveq #0,d1
  597.  jsr QUEUEFILE
  598.  addq #4,a2
  599.  
  600.  adda.w #64,a0
  601.  bra.s LOADMOREVECTORS
  602.  
  603. NOMOREVECTORS:
  604.  
  605.  rts
  606.  
  607. DOTPTR: dc.l 0
  608.  
  609. LOAD_A_PALETTE
  610.  movem.l d0-a7/a0-a6,-(a7)
  611.  
  612.  move.l #OBJNAME,blockname
  613.  move.l doslib,a6
  614.  move.l blockname,d1
  615.  move.l #1005,d2
  616.  jsr -30(a6)
  617.  move.l d0,handle
  618.  
  619.  move.l #2048,blocklen
  620.  
  621.  move.l #1,d1
  622.  move.l 4.w,a6
  623.  move.l blocklen,d0
  624.  jsr -198(a6)
  625.  move.l d0,blockstart
  626. ; move.l doslib,a6
  627. ; move.l blockname,d1
  628. ; move.l #1005,d2
  629. ; jsr -30(a6)
  630.  move.l doslib,a6
  631. ; move.l d0,handle
  632.  
  633.  move.l handle,d1
  634.  move.l blockstart,d2
  635.  move.l blocklen,d3
  636.  jsr -42(a6)
  637.  move.l doslib,a6
  638.  move.l handle,d1
  639.  jsr -36(a6)
  640.  
  641.  movem.l (a7)+,d0-a7/a0-a6
  642.  
  643.  move.l blockstart,(a2)+
  644.  move.l blocklen,(a2)+
  645.  
  646.  rts
  647.  CNOP 0,4
  648. fib: ds.l 75
  649.  
  650. LOAD_AN_OBJ:
  651.  movem.l a0/a1/a2/a3/a4,-(a7)
  652.  
  653.  move.l #OBJNAME,blockname
  654.  
  655.  move.l doslib,a6
  656.  move.l blockname,d1
  657.  move.l #1005,d2
  658.  jsr -30(a6)
  659.  move.l d0,handle
  660.  
  661.  lea fib,a5
  662.  move.l handle,d1
  663.  move.l a5,d2
  664.  jsr -390(a6)
  665.  
  666.  move.l $7c(a5),blocklen
  667.  
  668.  move.l #1,d1
  669.  move.l 4.w,a6
  670.  move.l blocklen,d0
  671.  jsr -198(a6)
  672.  move.l d0,blockstart
  673. ; move.l doslib,a6
  674. ; move.l blockname,d1
  675. ; move.l #1005,d2
  676. ; jsr -30(a6)
  677.  move.l doslib,a6
  678. ; move.l d0,handle
  679.  
  680.  move.l handle,d1
  681.  move.l blockstart,d2
  682.  move.l blocklen,d3
  683.  jsr -42(a6)
  684.  move.l doslib,a6
  685.  move.l handle,d1
  686.  jsr -36(a6)
  687.  
  688.  movem.l (a7)+,a0/a1/a2/a3/a4
  689.  
  690.  move.l blockstart,(a2)+
  691.  move.l blocklen,(a2)+
  692.  
  693.  rts
  694.  
  695. RELEASEOBJMEM:
  696.  
  697.  
  698.  move.l #OBJ_NAMES,a0
  699.  move.l #OBJ_ADDRS,a2
  700.  
  701. relobjlop
  702.  move.l (a2)+,blockstart
  703.  move.l (a2)+,blocklen
  704.  addq #8,a0
  705.  tst.l blockstart
  706.  ble.s nomoreovj
  707.  
  708.  movem.l a0/a2,-(a7)
  709.  
  710.  move.l blockstart,d1
  711.  move.l d1,a1
  712.  move.l blocklen,d0
  713.  move.l 4.w,a6
  714.  jsr -210(a6)
  715.  
  716.  movem.l (a7)+,a0/a2
  717.  bra.s relobjlop
  718.  
  719. nomoreovj:
  720.  
  721.  rts
  722.  
  723.  
  724.  
  725. TYPEOFMEM: dc.l 0
  726.  
  727. LOAD_SFX:
  728.  
  729.  move.l LINKFILE,a0
  730.  lea SFXFilenames(a0),a0
  731.  
  732.  move.l #SampleList,a1
  733.  
  734.  
  735.  move.w #58,d7
  736.  
  737. LOADSAMPS:
  738.  tst.b (a0)
  739.  bne.s oktoload
  740.  
  741.  add.w #64,a0
  742.  addq #8,a1
  743.  dbra d7,LOADSAMPS
  744.  move.l #-1,(a1)+
  745.  rts
  746.  
  747. oktoload:
  748.  
  749.  move.l #MEMF_CHIP,TYPEOFMEM
  750.  move.l a1,d0
  751.  move.l d0,d1
  752.  add.l #4,d1
  753.  jsr QUEUEFILE
  754.  addq #8,a1
  755. ; move.l d0,(a1)+
  756. ; add.l d1,d0
  757. ; move.l d0,(a1)+
  758.  adda.w #64,a0
  759.  dbra d7,LOADSAMPS
  760.  rts
  761.  
  762. PATCHSFX:
  763.  
  764.  move.w #58,d7
  765.  move.l #SampleList,a1
  766. .patch
  767.  move.l (a1)+,d0
  768.  add.l d0,(a1)+
  769.  dbra d7,.patch
  770.  
  771.  rts
  772.  
  773. ; PRSDJ
  774. ;
  775. ; move.l #SFX_NAMES,a0
  776. ; move.l #SampleList,a1
  777. ;LOADSAMPS
  778. ; move.l (a0)+,a2
  779. ; move.l a2,d0
  780. ; tst.l d0
  781. ; bgt.s oktoload
  782. ; blt.s doneload
  783. ;
  784. ; addq #4,a0
  785. ; addq #8,a1
  786. ; bra LOADSAMPS
  787. ;
  788. ;doneload:
  789. ; move.l #-1,(a1)+
  790. ; rts
  791. ;oktoload:
  792. ; move.l (a0)+,blocklen
  793. ; move.l a2,blockname
  794. ; movem.l a0/a1,-(a7)
  795. ; move.l #2,d1
  796. ; move.l 4.w,a6
  797. ; move.l blocklen,d0
  798. ; jsr -198(a6)
  799. ; move.l d0,blockstart
  800. ; move.l doslib,a6
  801. ; move.l blockname,d1
  802. ; move.l #1005,d2
  803. ; jsr -30(a6)
  804. ; move.l doslib,a6
  805. ; move.l d0,handle
  806. ; move.l d0,d1
  807. ; move.l blockstart,d2
  808. ; move.l blocklen,d3
  809. ; jsr -42(a6)
  810. ; move.l doslib,a6
  811. ; move.l handle,d1
  812. ; jsr -36(a6)
  813. ; movem.l (a7)+,a0/a1
  814. ; move.l blockstart,d0
  815. ; move.l d0,(a1)+
  816. ; add.l blocklen,d0
  817. ; move.l d0,(a1)+
  818. ; bra LOADSAMPS
  819.  
  820.  
  821.  
  822. LOADFLOOR
  823. ; PRSDK
  824. ; move.l #65536,d0
  825. ; move.l #1,d1
  826. ; move.l 4.w,a6
  827. ; jsr -198(a6)
  828. ; move.l d0,floortile
  829. ;
  830. ; move.l #floortilename,d1
  831. ; move.l #1005,d2
  832. ; move.l doslib,a6
  833. ; jsr -30(a6)
  834. ; move.l doslib,a6
  835. ; move.l d0,handle
  836. ; move.l d0,d1
  837. ; move.l floortile,d2
  838. ; move.l #65536,d3
  839. ; jsr -42(a6)
  840. ; move.l doslib,a6
  841. ; move.l handle,d1
  842. ; jsr -36(a6)
  843.  
  844.  move.l LINKFILE,a0
  845.  add.l #FloorTileFilename,a0
  846.  move.l #floortile,d0
  847.  move.l #0,d1
  848.  jsr QUEUEFILE
  849. ; move.l d0,floortile
  850.  
  851.  move.l LINKFILE,a0
  852.  add.l #TextureFilename,a0
  853.  move.l #BUFFE,a1
  854.  
  855. .copy:
  856.  move.b (a0)+,(a1)+
  857.  beq.s .copied
  858.  bra.s .copy
  859. .copied:
  860.  
  861.  subq #1,a1
  862.  move.l a1,dotty
  863.  
  864.  move.l #BUFFE,a0
  865.  move.l #TextureMaps,d0
  866.  move.l #0,d1
  867.  jsr QUEUEFILE
  868. ; move.l d0,TextureMaps
  869.  
  870.  move.l dotty,a1
  871.  move.l #".pal",(a1)
  872.  
  873.  move.l #BUFFE,a0
  874.  move.l #TexturePal,d0
  875.  move.l #0,d1
  876.  jsr QUEUEFILE
  877. ; move.l d0,TexturePal
  878.  
  879.  rts
  880.  
  881. dotty: dc.l 0
  882. BUFFE: ds.b 80
  883.  
  884.  
  885.  
  886. floortilename:
  887.  ifeq CHEESEY
  888.  dc.b 'AB3:includes/floortile'
  889.  endc
  890.  ifne CHEESEY
  891.  dc.b 'AB3:includes/SMALLfloortile'
  892.  endc
  893.  dc.b 0
  894.  
  895.  even
  896.  
  897. RELEASESAMPMEM:
  898.  move.l #SampleList,a0
  899. .relmem:
  900.  move.l (a0)+,d1
  901.  bge.s .okrel
  902.  rts
  903. .okrel:
  904.  move.l (a0)+,d0
  905.  sub.l d1,d0
  906.  move.l d1,a1
  907.  move.l 4.w,a6
  908.  move.l a0,-(a7)
  909.  jsr -210(a6)
  910.  move.l (a7)+,a0
  911.  bra .relmem
  912.  
  913.  
  914.  
  915. RELEASELEVELMEM:
  916.  
  917.  move.l LINKS,d1
  918.  move.l d1,a1
  919.  move.l #10000,d0
  920.  move.l 4.w,a6
  921.  jsr -210(a6)
  922.  
  923.  
  924.  move.l FLYLINKS,d1
  925.  move.l d1,a1
  926.  move.l #10000,d0
  927.  move.l 4.w,a6
  928.  jsr -210(a6)
  929.  
  930.  
  931.  move.l LEVELGRAPHICS,d1
  932.  move.l d1,a1
  933.  move.l #40000,d0
  934.  move.l 4.w,a6
  935.  jsr -210(a6)
  936.  
  937.  move.l LEVELCLIPS,d1
  938.  move.l d1,a1
  939.  move.l #40000,d0
  940.  move.l 4.w,a6
  941.  jsr -210(a6)
  942.  move.l LEVELMUSIC,d1
  943.  move.l d1,a1
  944.  move.l #70000,d0
  945.  move.l 4.w,a6
  946.  jsr -210(a6)
  947.  rts
  948.  
  949. RELEASEFLOORMEM:
  950.  
  951.  move.l floortile,d1
  952.  move.l d1,a1
  953.  move.l #65536,d0
  954.  move.l 4.w,a6
  955.  jsr -210(a6)
  956.  rts
  957.  
  958. COPSCR1: dc.l 0
  959. COPSCN2: dc.l 0
  960.  
  961. RELEASESCRNMEM:
  962.  
  963.  rts 
  964.  
  965. unLHA:    incbin    "ab3:Decomp4.raw"
  966.  
  967.  
  968.